1. Field of the Invention
The present invention relates generally to telecommunications systems and methods for accessing information stored in various nodes of a highly available computer system, and specifically to providing, within master and standby computer nodes, a data transfer function capable of updating and synchronizing data between the nodes.
2. Background and Objects of the Present Invention
Since the beginning of the telephone in the 1870's, signaling has been an integral part of telephone communications. Such signaling typically includes the call setup, such as the ringing of the called party, and tear-down procedures. In modern telecommunications networks, signaling constitutes the distinct control infrastructure that enables provision of all other services. It can be defined as the system that enables stored program control exchanges, network databases, and other "intelligent" nodes of the network to exchange: (a) messages related to call setup, supervision, and tear-down; (b) information needed for distributed applications processing (inter-process query/response); and (c) network management information.
In addition, the Intelligent Network (IN) and the new Advanced Intelligent Network (AIN) have made possible the transfer of all types of information through the telephone network without special circuits or long installation cycles. In the IN, everything is controlled or configured by workstations with user-friendly software. Telephone service representatives can, therefore, create new services and tailor a subscriber's service from a terminal while talking with the customer. These changes are immediately and inexpensively implemented in the switches, rather than by the more traditional method: expensive programming changes made by certified technicians.
The IN consists of a series of intelligent nodes, each capable of processing at various levels, and each capable of communicating with one another over data links. The basic infrastructure needed is composed of various signaling points, which both perform message discrimination (read the address and determine if the message is for that node), and route messages to other signaling points. The basic three types of signaling points are: (1) Service Switching Points (SSPs); (2) Signal Transfer Points (STPs); and (3) Service Control Points (SCPs), each of which are described in more detail hereinafter.
With reference now to FIG. 1 of the drawings, the many Service Switching Points (SSPs) 100 serve as the local exchanges in a telephone network 90, a portion of which is shown in FIG. 1. The SSPs 100 also provide an Integrated Services Digital Network (ISDN) interface for the Signal Transfer Points (STPs) 110, as is understood in the art.
The STP 110 serves as a router, and switches messages received from a particular SSP 100 through the network 90 to their appropriate destinations (another SSP 100). As is also understood in the art, the STP 110 receives messages in packet form from the SSPs 100. These packets are either related to call connections or database queries. If the packet is a request to connect a call, the message must be forwarded to a destination end office (another SSP 100), where the call will be terminated.
If, however, the message is a database query seeking additional information, the destination will be a database. Database access is provided through the Service Control Point (SCP) 120, which does not store the information, but acts as an interface to a computer that houses the requested information.
In many telecommunications applications, high availability of information and performance is of critical importance. The problem of high-availability is commonly solved by building software and hardware redundancy into the computing systems. From a hardware perspective, this "high-availability" problem is most easily resolved with duplicate computer nodes running in parallel. If the master node becomes unavailable, a standby node is switched into service. The problem of performance is commonly solved by avoiding time-intensive disk reads and writes by implementing memory-based databases, e.g., Random Access Memory (RAM) caches.
Existing technology provides a means for identifying all data that must survive a switchover between various nodes and for storing this data in memory segments of variable size. However, it is imperative that the actual data address of the data in question carry no significance between nodes. Therefore, many intelligent nodes now use an index manager- for administration and management of indices associated with the location of stored data. Thus, when an application requires a location for storage of data, the application sends a request to the index manager for the required amount of memory. Thereafter, the index manager returns a set of indices to the application, which then uses these indices for all updates and retrievals of the stored data. Advantageously, the application need only store the index to the data, instead of the actual value of the data itself.
In today's computer architectures, Input/Output (IO) transactions are very expensive from a performance standpoint, and must be avoided when performance is critical. In highly-available, data-intensive computer systems where performance is critical, disk reads and writes are often avoided by implementing Random Access Memory (RAM) caches (memory-based databases) for data storage. However, the RAM caches in a redundant network must be synchronized between the various nodes of a highly-available computer system to prevent data loss in the event of a switchover between a master and standby node.
For example, for a highly-available general platform Service Control Point, the main problem is how to keep the service, charging, and other relevant persistent data synchronized between multiple computer nodes in a highly-available network system. In addition, the need for high bandwidth (extensive data updates) and quasi-real time (nearly simultaneous data updates) requirements also pose problems for the highly-available SCP.
One solution for data updates for highly-available intelligent nodes includes the use of mirrored data storage disks, in which a data update is performed to one disk, which in turn performs an update to the additional (mirror) disk. However, mirrored disks are expensive and time-consuming due to the fact that the updates are performed sequentially instead of simultaneously and that the updates require input/output writes.
In addition, remote procedure calls have been considered as a possible solution to the problems associated with data updates for highly-available intelligent nodes. When a data update is performed in the master node, a remote procedure call is initiated by the application requesting the data update to the respective application in the standby node to perform a data update. The master application must then wait for a response from the standby application that the update was performed. However, remote procedure calls are both time-consuming and consume too much bandwidth.
It is therefore an object of the invention to provide a fast, efficient and convenient manner of performing data updates between master and standby intelligent nodes that meets both the high bandwidth and quasi-real time requirements.